package org.jeecg.modules.simulator.util;

import org.checkerframework.checker.units.qual.C;
import org.jeecg.modules.simulator.jsonot.BeforeFiveMinPeople;
import org.jeecg.modules.simulator.loader.*;
import org.jeecg.modules.simulator.model.SceneParam;
import org.jeecg.modules.simulator.model.SimulatorParam;
import org.jeecg.modules.simulator.recorder.StationInfoVo;
import org.jeecg.modules.simulator.recorder.TrainPositionInfoVo;
import org.jeecg.modules.simulator.rooter.CaculateProject;
import org.jeecg.modules.simulator.vo.LineStaticInfoVo;
import org.jeecg.modules.simulator.vo.SceneControlStatus;
import org.jeecg.modules.simulator.vo.StationStaticInfoVo;

import java.util.HashMap;
import java.util.List;
import java.util.Map;
import java.util.concurrent.ExecutorService;
import java.util.concurrent.Executors;
import java.util.concurrent.Future;

/**
 * @program: simulator-b20240918
 * @description:
 * @author: renzhg
 * @create: 2024-10-04 13:50
 **/
public class UnitCache {
    public static GlobalSceneBaseData globalSceneBaseData;

    public static ExecutorService executorService = Executors.newFixedThreadPool(10);

    //key:场景编码,每开一个场景,就会生成一个场景编码
    public static Map<String, GlobalSceneData> codeBasicMap = new HashMap<String, GlobalSceneData>();
    //key:场景编码,每开一个场景,就会生成一个场景编码
    public static Map<String, StationAddPersonNumData> stationAddPersonNumDataMap = new HashMap<String, StationAddPersonNumData>();
    //key:场景编码,每开一个场景,就会生成一个场景编码
    public static Map<String, SimpleAddTrainData> simpleAddTrainDataMap = new HashMap<String, SimpleAddTrainData>();


    //站点参数操作类，key:场景编码
    public static Map<String, StationParamOperate> stationParamOperateMap = new HashMap<String, StationParamOperate>();


    public static Map<String, SimulatorParam> simulatorParamMap = new HashMap<String, SimulatorParam>();

//场景参数，1、场景开始时间 2、场景结束时间 3、每秒进站人数 4、历史日期5、场景类型
    public static Map<String, SceneParam> sceneParamMap = new HashMap<String, SceneParam>();
    //场景控制状态方法
    public static Map<String, SceneControlStatus> sceneControlStatusMap = new HashMap<String, SceneControlStatus>();

    //场景控制类用来控制场景的启动和停止，暂停，恢复
    public static Map<String, CaculateProject> sceneControlMap = new HashMap<String, CaculateProject>();

    public static Map<String, Future<?>> sceneFutureMap = new HashMap<String, Future<?>>();

    public static Map<String,StationInfoVo> stationInfoVoMap = new HashMap<String, StationInfoVo>();

    public static Map<String,TrainPositionInfoVo> trainPositionInfoVoMap = new HashMap<String, TrainPositionInfoVo>();

    public static Map<String, Map<String,StationStaticInfoVo>> stationStaticInfoVoMap = new HashMap<String, Map<String,StationStaticInfoVo>>();

    public static Map<String, LineStaticInfoVo> lineStaticInfoVoMap = new HashMap<String, LineStaticInfoVo>();

    public static Map<String, Map<String,List<BeforeFiveMinPeople>>>    BeforeFiveMinPeopleMap=new HashMap<>();




}
